package cn.edu.sgu.www.mhxysy.service.chongwu;

import cn.edu.sgu.www.mhxysy.dto.chongwu.ChongwuInitZizhiDTO;
import cn.edu.sgu.www.mhxysy.dto.chongwu.ChongwuInitZizhiOrdinaryDTO;
import cn.edu.sgu.www.mhxysy.dto.chongwu.ChongwuInitZizhiSpecialDTO;
import cn.edu.sgu.www.mhxysy.entity.chongwu.ChongwuInitZizhi;
import cn.edu.sgu.www.mhxysy.pager.chongwu.ChongwuInitZizhiPager;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import java.util.List;

/**
 * @author 沐雨橙风ιε
 * @version 1.0
 */
public interface ChongwuInitZizhiService {

	/**
	 * 添加宠物初始资质
	 * @param chongwuInitZizhiDTO 宠物初始资质
	 */
	void insert(ChongwuInitZizhiDTO chongwuInitZizhiDTO);

	/**
	 * 通过ID删除宠物初始资质
	 * @param id 宠物初始资质ID
	 */
	void deleteById(Integer id);

	/**
	 * 通过ID修改宠物初始资质
	 * @param chongwuInitZizhiDTO 宠物初始资质
	 */
	void updateById(ChongwuInitZizhiDTO chongwuInitZizhiDTO);

	/**
	 * 保存宠物初始资质
	 * @param chongwuInitZizhiOrdinaryDTO 宠物资质信息
	 */
	void save(ChongwuInitZizhiOrdinaryDTO chongwuInitZizhiOrdinaryDTO);

	/**
	 * 保存特殊宠物的初始资质
	 * @param chongwuInitZizhiSpecialDTO 宠物资质信息
	 */
	void saveSpecial(ChongwuInitZizhiSpecialDTO chongwuInitZizhiSpecialDTO);

	/**
	 * 查询特殊宠物的初始资质
	 * @param specialType 特殊宠物的资质类型
	 * @return List<ChongwuChushiZizhi>
	 */
	List<ChongwuInitZizhi> selectSpecials(Integer specialType);

	/**
	 * 查询宠物初始资质列表
	 * @param type 资质类型
	 * @param chongwuId 宠物类型ID
	 * @return List<ChongwuChushiZizhi>
	 */
	List<ChongwuInitZizhi> selectList(Integer type, Integer chongwuId);

	/**
	 * 分页查询宠物初始资质列表
	 * @param pager 分页参数
	 * @return Page<ChongwuInitZizhi>
	 */
    Page<ChongwuInitZizhi> selectByPage(ChongwuInitZizhiPager pager);
}